This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present invention that are described and claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Multiple computers and/or processors are frequently networked together so that the multiple computers and/or processors can be collectively used to solve a single problem or perform a single large calculation or set of calculations. Typically, these multiple computers and/or processors coordinate with each other by communicating via the network. These networked systems may include the computers and/or processors themselves (hereafter referred to as “endpoints”), a central switch, and one or more connections interconnecting the endpoints with the central switch. In such systems, the switch is generally responsible for routing messages from a source endpoint to a destination endpoint. However, the connections between the source endpoint and the destination endpoint are typically only able to transmit a fixed amount of data during a given unit of time. This capacity is referred to as the bandwidth of the connection.
It may be possible for more data to arrive at the switch than the switch can deliver to the destination endpoint. For example, if each of the connections within a networked system has the same bandwidth, the switch can become overloaded if multiple source endpoints each transmit data at the same time to a single destination endpoint. Those of ordinary skill in the art will appreciate that the switch's delivery of data to the destination endpoint is limited by the bandwidth of the connection between the switch and the destination endpoint; whereas the amount of data that can arrive from multiple source endpoints is a function of the number of source endpoints that transmit data to the switch. In other words, if multiple source endpoints simultaneously attempt to transmit data to a single destination endpoint, the switch may be unable to deliver the received data over the single connection to the destination endpoint as quickly as the switch is receiving data over multiple connections from multiple source endpoints.
Typical switches attempt to compensate for this potential issue by including buffer storage within the switch to store “backed-up” messages until they can be sent to the destination endpoint. However, if this buffer storage fills up, incoming messages for the destination endpoint may be dropped or lost. This condition is referred to as “switch saturation.” In conventional networked systems, such as transmission control protocol/internet protocol (“TCP/IP”) systems, switch saturation results in messages having to be resent by their respective source endpoints. This retransmission can slow down the processing of data by the networked system and degrade its performance. An improved technique for communicating in a networked system would be desirable.